package com.simpleaccount.Db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.graphics.Color;

/**
 * Created by Administrator on 2017/7/13.
 */

public class DatabaseHelper extends SQLiteOpenHelper {

    /**
     * @param context  上下文环境（例如，一个 Activity）
     * @param name   数据库名字
     * @param factory  一个可选的游标工厂（通常是 Null）
     * @param version  数据库模型版本的整数
     *
     * 会调用父类 SQLiteOpenHelper的构造函数
     */
    public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);

    }

    /**
     *  在数据库第一次创建的时候会调用这个方法
     *
     *根据需要对传入的SQLiteDatabase 对象填充表和初始化数据。
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table category(" +
                "       name TEXT not null," +
                "       type INTEGER not null," +
                "       color INTEGER not null," +
                "       primary key(name,type)" +
                "       );");
        db.execSQL("create table entry(" +
                "       objectId TEXT," +
                "       id INTEGER PRIMARY KEY AUTOINCREMENT," +
                "       money real not null," +
                "       category TEXT not null," +
                "       date INTEGER not null," +
                "       msg TEXT," +
                "       color INTEGER not null," +
                "       type INTEGER not null," +
                "       foreign key(category) references category(name)," +
                "       foreign key(color) references category(color)," +
                "       foreign key(type) references category(type)"+
                "       );");
        DbUtils.init(db);
        //初始化 支出的类别
        //0
        DbUtils.insertCategory("出行", Color.parseColor("#edd170"),0);
        DbUtils.insertCategory("餐饮",Color.parseColor("#A3586D"),0);
        DbUtils.insertCategory("娱乐",Color.parseColor("#F46A4E"),0);
        DbUtils.insertCategory("贵重品",Color.parseColor("#475999"),0);
        DbUtils.insertCategory("学习",Color.parseColor("#0294a5"),0);
        //5
        DbUtils.insertCategory("旅游",Color.parseColor("#ED9241"),0);
        DbUtils.insertCategory("购物",Color.parseColor("#E2728E"),0);
        DbUtils.insertCategory("住宿",Color.parseColor("#D1B95D"),0);
        DbUtils.insertCategory("维修",Color.parseColor("#B47CA7"),0);
        DbUtils.insertCategory("还贷",Color.parseColor("#9E7866"),0);
        //10
        DbUtils.insertCategory("服装",Color.parseColor("#9C939E"),0);
        DbUtils.insertCategory("一般",Color.parseColor("#AFB341"),0);
        DbUtils.insertCategory("医疗",Color.parseColor("#DBA7BC"),0);
        DbUtils.insertCategory("其他",Color.parseColor("#52A24E"),0);
        DbUtils.insertCategory("人情",Color.parseColor("#D05B97"),0);

        //初始化 收入的类别
        DbUtils.insertCategory("工资",Color.parseColor("#E85A15"),1);
        DbUtils.insertCategory("奖金",Color.parseColor("#E8971E"),1);
        DbUtils.insertCategory("兼职",Color.parseColor("#DD5555"),1);
        DbUtils.insertCategory("红包",Color.parseColor("#D0021B"),1);
        DbUtils.insertCategory("普通",Color.parseColor("#D4A035"),1);
        DbUtils.insertCategory("生活费",Color.parseColor("#F5A623"),1);

    }

    /**
     * 当数据库需要修改的时候（两个数据库版本不同），Android系统会主动的调用这个方法。
     * 一般我们在这个方法里边删除数据库表，并建立新的数据库表.
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //三个参数，一个 SQLiteDatabase 对象，一个旧的版本号和一个新的版本号

    }

    @Override
    public void onOpen(SQLiteDatabase db) {
        // 每次成功打开数据库后首先被执行
        super.onOpen(db);
        DbUtils.init(db);
    }
}